Skip to content

Add separate Huffman decoder and improve LZXpress Huffman - #154

Merged
yunzheng merged 2 commits into
mainfrom
huffman
Oct 28, 2026
Merged

yunzheng merged 2 commits into
mainfrom
huffman

Conversation

@Schamper

Copy link
Copy Markdown
Contributor

The separate huffman decoder can be used in separate decompression code.

The LZXpress Huffman fixes should make #132 redundant, as well as the fixes for it in #129. #129 still has some other improvements, of course.

@codecov

codecov Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 128 lines in your changes missing coverage. Please review.
✅ Project coverage is 0.00%. Comparing base (47679e8) to head (5c77594).

Files with missing lines Patch % Lines
dissect/util/compression/huffman.py 0.00% 47 Missing ⚠️
dissect/util/compression/lzxpress_huffman.py 0.00% 46 Missing ⚠️
dissect/util/stream.py 0.00% 35 Missing ⚠️
Additional details and impacted files
@@          Coverage Diff          @@
##            main    #154   +/-   ##
=====================================
  Coverage   0.00%   0.00%           
=====================================
  Files         31      32    +1     
  Lines       2179    2178    -1     
=====================================
+ Misses      2179    2178    -1     
Flag Coverage Δ
unittests 0.00% <0.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@codspeed

codspeed Bot commented Oct 27, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 37.38%

⚡ 3 improved benchmarks
✅ 36 untouched benchmarks
🆕 3 new benchmarks

Performance Changes

Benchmark BASE HEAD Efficiency
⚡ test_benchmark_lzxpress_huffman_decompress[large] 5.9 ms 3.6 ms +62.44%
⚡ test_benchmark_lzxpress_huffman_decompress[basic] 2.5 ms 1.8 ms +37.87%
⚡ test_benchmark_lz4_decompress[python-large] 132.9 µs 114.8 µs +15.78%
🆕 test_benchmark_lzxpress_huffman_decompress[exact-64k] N/A 2.2 ms N/A
🆕 test_benchmark_lzxpress_huffman_decompress[long-match] N/A 4.1 ms N/A
🆕 test_benchmark_lzxpress_huffman_decompress[multi-block] N/A 9.9 ms N/A

Tip

Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.


Comparing huffman (4ecec3f) with main (04ef326)

Open in CodSpeed

@yunzheng
yunzheng merged commit 5f44da4 into main Oct 28, 2026
30 of 31 checks passed
@yunzheng
yunzheng deleted the huffman branch October 28, 2026 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants